package com.stefanini.pe.bbva.bp.in.controller;

import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ComponentSystemEvent;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import com.stefanini.pe.bbva.bp.in.bo.iface.GestionCuestionarioBOIface;
import com.stefanini.pe.bbva.bp.in.model.PerfilDatosModel;
import com.stefanini.pe.bbva.bp.in.security.AuthorizationService;
import com.stefanini.pe.bbva.bp.in.to.Perfil;
import com.stefanini.pe.bbva.bp.in.utils.SpringApplicationContext;
import com.stefanini.pe.bbva.bp.in.utils.Util;

@Controller(value = "perfilDatosController")
@RequestScoped
public class PerfilDatosController{	
	@Autowired
	private GestionCuestionarioBOIface gestionCuestionarioBO;
	@Autowired
	private PerfilDatosModel perfilDatosModel;
	
	Logger logger = Logger.getLogger(this.getClass());
	
	public void onPageLoad(ComponentSystemEvent event) {
		try {
			AuthorizationService auth = (AuthorizationService)SpringApplicationContext.getBean("authorizationService");
			if (auth.isSessionUserAndContextValide() && !FacesContext.getCurrentInstance().isPostback()) {
				System.out.println("PerfilDatosController... is not Postback");
				getPerfilDatosModel().setListaPerfilDatos(gestionCuestionarioBO.listarPerfilDatos(""));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	public void eliminarPerfil(Object ob){
		Perfil perfil = (Perfil)ob;
		getPerfilDatosModel().setIdItemEliminar(String.valueOf(perfil.getIdperfil()));			
	}
	
	public void eliminar(){		
		try {
			gestionCuestionarioBO.eliminarPerfilDatos(getPerfilDatosModel().getIdItemEliminar());
			getPerfilDatosModel().setListaPerfilDatos(gestionCuestionarioBO.listarPerfilDatos(""));
		} catch (Exception e) {
			e.printStackTrace();
			logger.error("eliminar():"+e.getMessage());				
		}		
	}
	
	public void mantenimientoPerfilesEdit(Object ob){
		Perfil perfil = (Perfil)ob;
		getPerfilDatosModel().setIdPerfil(String.valueOf(perfil.getIdperfil()));
		getPerfilDatosModel().setNombre(perfil.getNombre());
		getPerfilDatosModel().setDescripcion(perfil.getDescripcion());
		getPerfilDatosModel().setObjetivo(perfil.getObjetivo());
		getPerfilDatosModel().setHorizonte(perfil.getHorizonte());
		getPerfilDatosModel().setVolatilidad(perfil.getVolatilidad());
		getPerfilDatosModel().setMinimo(String.valueOf(perfil.getMinimo()));
		getPerfilDatosModel().setMaximo(String.valueOf(perfil.getMaximo()));
		getPerfilDatosModel().setRebalanceovencimiento(String.valueOf(perfil.getRebalanceovencimiento()));
		getPerfilDatosModel().setPerfilamientovencimiento(String.valueOf(perfil.getPerfilamientovencimiento()));
		getPerfilDatosModel().setActivo(perfil.getActivo());
		
		Util.redirect("/pages/gestion/MantenimientoPerfiles.xhtml");
	}
	
	public void mantenimientoPerfilesNew(){
		getPerfilDatosModel().setIdPerfil("0");
		getPerfilDatosModel().setNombre("");
		getPerfilDatosModel().setDescripcion("");
		getPerfilDatosModel().setObjetivo("");
		getPerfilDatosModel().setHorizonte("");
		getPerfilDatosModel().setVolatilidad("");
		getPerfilDatosModel().setMinimo("");
		getPerfilDatosModel().setMaximo("");
		getPerfilDatosModel().setRebalanceovencimiento("");
		getPerfilDatosModel().setPerfilamientovencimiento("");
		getPerfilDatosModel().setActivo("");
		
		Util.redirect("/pages/gestion/MantenimientoPerfiles.xhtml");
	}
	
	public PerfilDatosModel getPerfilDatosModel() {
		return this.perfilDatosModel;
	}

	public void setPerfilDatosModel(PerfilDatosModel perfilDatosModel) {
		this.perfilDatosModel = perfilDatosModel;
	}
}
